package finalproject.model.player;

import finalproject.view.StringManager;

/**
  * Cette class permet de creer des badges avec des attributs.
  * Chaque badge contient des energies qui peuvent etre augmente ou diminue
  * @author Bin SABARI Shafiq
  * @version 1.0
  */
@SuppressWarnings("serial")
public class Badge implements java.io.Serializable
{	
	
	private Energy energie;		//le niveau d'energie dans le badge
	private int id;			//identifier le badge

	/**
	  * Constructeur de badges par defaut
	  */
	public Badge()
	{
		this(0,new Energy());
	}
	
	/**
	  * Constructeur de badges avec identifiant et energie de depart
	  *
	  * @param id		identifiant du badge
	  * @param energieStart	l'energie de depart sur le badge
	  *	
	  *	
	  */
	public Badge(int id, Energy energieStart)
	{
		energie = energieStart;
		this.id = id;		
	}

	/**
	 * Ajouter ou enlever l'energie d'un badge d'une certaine valeur
	 *
	 * @param changementDEnergie
	 *	valeur de changement
	 */
	public void modifierEnergie(int changementDEnergie)
	{
		energie.setEnergy(energie.getEnergy() + changementDEnergie);		
	}
	
	public boolean enoughEnergy(int changementDEnergie){
		int newEnergie =  energie.getEnergy() + changementDEnergie;
		
		if(newEnergie>0)
			return true;
		else{
			StringManager.outPut("lowenergy");
			return false;	
		}
	}

	/**
	 * Renvoi l'energie d'un badge
	 *
	 * @return 
	 *	l'energie du badge
	 */
	public Energy getEnergie()
	{
		return energie;
	}
	
	public int getEnergieMax()
	{
		return energie.getMaxEnergy();
	}
	
	/**
	 * Changer l'energie d'un badge
	 * 
	 * @param newEnergie
	 *	le nouveau energie de badge
	 */
	public void setEnergie(Energy newEnergie)
	{
		energie=newEnergie;
	}
	
	/**
	 * Renvoi l'identifiant d'un badge
	 *
	 * @return	
	 * 	l'identifiant du badge
	 */
	public int getId(){
		return id;
	}

	/**
	 * Methode toString pour afficher correctement un badge
	 *
	 * @return 
	 *	String avec format "Badge [id]  Energie : [energie]"
	 */
	@Override
	public String toString()
	{
		return (String.format("%s %-5s %s %-5s", "Badge ", id, "Energie : ", energie));
	}

	
}
